#include"Tcp_Server.hpp"
#include"Server_Calculator.hpp"

static void Usage(const string& proc)
{
    cout<<"\nUsage:"<<proc<<"port\n\n"<<endl;
}

//./server+clt 8080
int main(int argc,char* argv[])
{
    if(argc!=2)
    {
        Usage(argv[0]);
        exit(0);
    }

    uint16_t port=stoi(argv[1]);

    ServerCal cal;
    
    TcpServer* tsvp=new TcpServer(port,bind(&ServerCal::Calculator,&cal,placeholders::_1));
    
    tsvp->Init();
    tsvp->Start();





    //测试Request
    // Request req(123,456,'+');
    // string s;
    // req.Serialize(s);
    // s=Encode(s);
    // cout<<s<<endl；
    // string content;
    // if(Decode(s,content))cout<<content<<endl;
    // Request temp;
    // temp.Deserialize(content);
    // cout<< temp._x <<endl;
    // cout<<temp._opr<<endl;
    // cout<<temp._y<<endl;

    //测试Response
    // Response resp(1000,0);
    // string content;
    // resp.Serialize(content);
    // cout<<content<<endl;
    // string package=Encode(content);
    // cout<<package<<endl;
    // content="";
    // if(Decode(package,content))cout<<content<<endl;
    // Response temp;
    // temp.Deserialize(content);
    // cout<<temp._result<<endl;
    // cout<<temp._code<<endl;
    return 0;
}